#include "CamGrua.h"


CamGrua::CamGrua(unsigned int alto, unsigned int ancho, float fov) :
	Camara(alto, ancho, fov)
{
}


CamGrua::~CamGrua(){
}


void CamGrua::zoomIn(ZOOM_TYPE z) {
	// No tiene Zoom esta camara
}


void CamGrua::mouseMove(int viewportPosX, int viewportPosY) {
	// No tiene movimiento de la vista
}


void CamGrua::moverCamara(MOVE_TYPE direccion, float magnitud) {
	// La matriz de rotacion y el vector director
	glm::mat4 matRotacion = glm::rotate(glm::mat4(1.0f), magnitud, glm::vec3(0.0f, 0.0f, 1.0f));
	glm::vec3 vecDirector = this->m_vecTarget - this->m_vecPosicion;

	// Se rota el vector director
	vecDirector = glm::vec3( matRotacion * glm::vec4(vecDirector, 1.0f) );

	this->m_vecTarget = vecDirector + this->m_vecPosicion;
	actualizarMatrizVista();
}


